/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package main.LanguageResource;

import java.util.Set;

/**
 * Object for words processed in any Language Resource such as Part-of-Speech tagger or Dictionary
 * @author Isaac Osesina
 */
public interface WordConstruct<E> {
       
    
    /**
     * 
     * @return word used to create this construct
     */
    public String getWord();
    
    /**
     * 
     * @return Lemma of the processed word
     */
    public abstract String getLemma();
    
    /**
     * 
     * @return the Part-of-Speech tag as produced by the NLP
     */
    public abstract E getPOS();
    
    /**
     * 
     * @return set of synonyms of the word used to create construct
     */
    public Set<String> getSynonyms();
    
    void setLemma(String lemma);

    void setPOS(E POS);
    
    void setPOS(String POS_tag);

    void setSyn(Set<String> syn);
    
    void addSyn(String syn);
    
}
